超緊繃!30天Vue.js學習日記 class與style綁定
大家好,我ian啦!今天要介紹給大家的是:class與style綁定!
我們先從官方文件做切入,設定一個對象給v-bind,做到動態切換class的功能
<div v-bind:class="{ active: isActive }"></div>
上述範例中, isActive的值(true/false)將會決定active這個class是否存在
同樣的v-bind:class指令也可以跟一般的class屬性共存:
<div
class="static"
v-bind:class="{ active: isActive, 'text-danger': hasError }"
></div>
JS code:
//在instance中
data: {
isActive: true,
hasError: false
}
這樣就會渲染出:
<div class="static active"></div>
這樣做有什麼好處呢?我們可以預先寫好不同class對應的css code,並且動態的切換div的樣式,像是這樣:
<style type="text/css">
.red{
color: red;
}
</style>
<div id="app" :class="{red : isred}">
{{msg}}
<button @click="update">點我</button>
</div>
<script>
new Vue({
el:'#app',
data:{
msg:'hello world',
isred:false
},
methods:{
update(){
let vm = this;
vm.isred=!vm.isred;
}
}
})
</script>
在上述範例中,data內預設的isred為false,當我們按下按鈕時會觸發update()去更新isred的值,變動後,div的class便會產生改變,這樣一來,我們先前寫好的style樣式便會被套用進去!
寫在物件中內:
<div id="app2" v-bind:style="styleobject">{{msg}}</div>
<script>
var app2 = new Vue({
el:'#app2',
data:{
msg:'styleobject',
styleobject:{
color: 'blue',
fontSize: '25px'
}
}
})
</script>
同時綁定多組樣式在該元素中:
<div id="app3" v-bind:style="[styleobject, font]">{{msg}}</div>
<script>
var app3 = new Vue({
el:'#app3',
data:{
msg:'APP3',
styleobject:{
color: 'blue',
fontSize: '25px'
},
font:{
fontFamily: '微軟正黑體'
}
}
})
</script>
本日範例:
https://drive.google.com/open?id=1UO-2uBgcYjPuHeNxR_M3M-j7EgrbGH_j
今天的教學到這邊結束,明天會回頭繼續介紹組件(component)!!!